虚拟化之争:NVGRE与VXLAN的全面对比
来源:网络技术联盟站
你好,这里是网络技术联盟站。
NVGRE与VXLAN都是用于虚拟化数据中心网络的技术,它们旨在解决传统网络架构中的一些问题,如隔离、伸缩性和性能。尽管它们的目标相似,但它们在实现方式和一些关键方面存在区别。本文将深入研究NVGRE和VXLAN,探讨它们的异同点以及它们在不同场景下的优劣势。
让我们直接开始!
目录:
NVGRE
NVGRE工作原理
NVGRE特点
VXLAN
VXLAN工作原理
VXLAN特点
NVGRE 与 VXLAN 对比
总结
虚拟化技术的崛起已经改变了数据中心的运行方式,使得在同一物理基础设施上运行多个虚拟机成为可能。然而,传统的数据中心网络设计并不适应这种新型应用的需求,因此需要一种新的方法来解决这些问题。NVGRE和VXLAN就是为此而生的。
NVGRE
NVGRE(Network Virtualization using Generic Routing Encapsulation)是一种网络虚拟化方法,它旨在解决传统的虚拟局域网(VLAN)在复杂虚拟化环境中的限制。
NVGRE工作原理
NVGRE工作原理涉及数据包的封装,将虚拟网络标识符(TNI)添加到数据包中,通过现有IP网络传输数据包,然后在目标主机上进行解封装和交付。这使得大规模虚拟网络在物理基础设施上更加灵活和可扩展。NVGRE是一种用于解决虚拟网络扩展性问题的有效技术。
虚拟网络标识符(TNI):
NVGRE引入了一个24位的虚拟网络标识符(Tenant Network Identifier,TNI),用于标识不同的虚拟网络或租户。每个TNI对应一个独立的虚拟网络,允许多个虚拟网络在同一物理基础设施上运行,而不会相互干扰。
数据包封装:
源MAC地址:表示发送VM的MAC地址。 目标MAC地址:表示接收VM的MAC地址。 TNI:24位的虚拟网络标识符。 原始以太网帧:包括源MAC地址、目标MAC地址、以太网协议类型(通常是IPv4或IPv6)等。
当虚拟机(VM)之间进行通信时,其数据包将被封装成NVGRE数据包。 NVGRE数据包的格式包括:
传输网络:
NVGRE数据包通过现有的IP网络进行传输,包括物理网络或虚拟化网络。 在传输过程中,NVGRE数据包的IP头部信息用于路由和传递,而TNI用于识别目标虚拟网络。
解封装:
当NVGRE数据包到达目标虚拟网络的VM所在的主机时,主机将进行解封装。 它将从NVGRE数据包中提取原始以太网帧,将其交给目标VM进行处理。
学习和维护MAC地址表:
NVGRE主机会维护一个MAC地址表,用于将虚拟机的MAC地址映射到TNI。 当主机接收到NVGRE数据包时,它会查找MAC地址表以确定数据包应该传递给哪个VM。
广播和组播支持:
NVGRE通常使用广播和组播来支持虚拟网络内的通信。这允许虚拟机进行广播和组播操作,以便满足一些网络协议(如ARP和邻居发现)的需求。
NVGRE特点
网络虚拟化目标:NVGRE的主要目标之一是为多租户和负载均衡网络提供更大的虚拟局域网(VLAN)数量。传统的VLAN数量有限,这在大型数据中心或分布式云环境中可能会受到限制。NVGRE旨在克服这一限制,使得更多的虚拟网络可以在同一物理基础设施上运行。
封装和隧道:NVGRE使用封装技术来实现虚拟网络的隔离。它在虚拟机之间的通信中封装数据包,并通过隧道技术将它们传输到目标虚拟机。这允许虚拟机之间的通信似乎是直接的,而无需考虑底层物理网络。
跨数据中心扩展性:NVGRE的设计考虑到了跨分散的数据中心的需求。它可以用于扩展虚拟网络跨越不同的物理位置,从而支持分布式数据中心架构。
VXLAN
VXLAN(Virtual Extensible LAN)是一种网络虚拟化技术,旨在解决大型云计算数据中心虚拟网络不足的问题。它允许网络管理员扩展虚拟局域网(VLAN)的地址空间,以支持更多的虚拟网络,并为每个虚拟网络提供独立的标识符。
VXLAN工作原理
VXLAN工作原理涉及数据包的封装,将虚拟网络标识符(VNI)添加到数据包中,通过现有IP网络传输数据包,然后在目标主机上进行解封装和交付。这使得大规模虚拟网络在物理基础设施上更加灵活和可扩展。
VXLAN标识符(VNI):
VXLAN引入了一个24位的虚拟网络标识符(VNI),它用于区分不同的虚拟网络。每个VNI都对应一个独立的虚拟网络,允许多个虚拟网络在同一物理基础设施上运行,而不会相互干扰。 VNI通常由UDP端口上的伪随机算法生成,以确保唯一性。
数据包封装:
源IP地址:表示发送VM的IP地址。 目标IP地址:表示接收VM的IP地址。 UDP头部:包含源和目标端口信息,用于标识VXLAN数据包。 VNI:24位的虚拟网络标识符。 原始以太网帧:包括源MAC地址、目标MAC地址、以太网协议类型(通常是IPv4或IPv6)等。
当虚拟机(VM)之间进行通信时,其数据包将被封装成VXLAN数据包。 VXLAN数据包的格式包括:
传输网络:
VXLAN数据包通过现有的IP网络进行传输,包括物理网络或虚拟化网络。 在传输过程中,VXLAN数据包的IP头部信息用于路由和传递,而VNI用于识别目标虚拟网络。
解封装:
当VXLAN数据包到达目标虚拟网络的VM所在的主机时,主机将进行解封装。 它将从VXLAN数据包中提取原始以太网帧,将其交给目标VM进行处理。
学习和维护MAC地址表:
VXLAN主机会维护一个MAC地址表,用于将虚拟机的MAC地址映射到VNI。 当主机接收到VXLAN数据包时,它会查找MAC地址表以确定数据包应该传递给哪个VM。
广播和组播支持:
VXLAN通常使用组播来模拟广播和组播的行为。这对于支持一些网络协议(如ARP和邻居发现)非常重要,以便虚拟机可以在同一虚拟网络内相互通信。
VXLAN特点
扩展VLAN地址空间:VXLAN的主要目标之一是扩展VLAN的地址空间。传统的VLAN标识符有限,通常只支持4096个VLAN。在大型云计算环境中,这个数量可能迅速不足。VXLAN通过引入24位的段ID来扩展这个地址空间,将可用的标识符数量增加到1600万个。
虚拟网络隔离:VXLAN允许多个虚拟网络在同一物理基础设施上共存,并提供逻辑上的隔离。每个虚拟网络都有一个唯一的VXLAN网段ID,用于区分不同的逻辑网络和租户。这样,不同的虚拟网络可以独立运行,就像它们在不同的物理网络上一样。
支持多租户环境:VXLAN适用于多租户环境,允许不同的租户在同一基础设施上创建独立的虚拟网络,而不会相互干扰。这对于云服务提供商和大型数据中心特别有用。
第2层和第3层扩展:VXLAN不仅可以扩展第2层(数据链路层),还可以与第3层(网络层)扩展结合使用。这意味着它可以支持更复杂的网络拓扑和路由配置。
行业支持:VXLAN得到了广泛的行业支持,包括Cisco、VMware、Arista Networks等公司。这意味着在各种虚拟化平台和网络设备中都可以找到对VXLAN的支持。
NVGRE 与 VXLAN 对比
NVGRE和VXLAN都是用于网络虚拟化的技术,但它们在支持者、传输协议、数据包格式、传输方式和分片等方面存在一些区别。
支持者和传输协议:
NVGRE主要由Microsoft支持,并使用GRE协议作为传输协议。 VXLAN主要由Cisco驱动,使用UDP协议作为传输协议。
数据包格式:
VXLAN的数据包包含一个24位的VXLAN网络标识符(VNI),允许支持1600万个唯一的虚拟网络。VNI通常由UDP端口上的伪随机算法生成。 NVGRE使用GRE头部的低24位作为租户网络标识符(TNI),也支持1600万个虚拟网络。但由于它使用GRE头部,不太适用于传统的负载均衡。
传输方式:
VXLAN利用组播来模拟二层网络中的广播、未知单播和组播,这对于MAC地址学习、ARP和邻居发现等协议非常重要。 NVGRE建议每个主机使用多个IP地址,以增强负载均衡能力,而不依赖于洪泛和IP多播。
分片:
NVGRE支持对数据包的最大传输单元进行分片,从而进一步减小了内部虚拟网络的数据包大小。 VXLAN通常需要传输网络支持大帧,不支持数据包分片。
总结
VXLAN和NVGRE代表了网络虚拟化领域的一次革命性进步。它们不仅提供了更大规模的虚拟网络,还允许跨越不同网络层级的数据包传输,为云计算和大规模数据中心提供了更大的灵活性和可扩展性。
通过将虚拟网络规模从4096个扩展到1600万个,VXLAN和NVGRE为多租户和复杂网络环境提供了更好的支持。这使得组织能够更好地满足不断增长的网络需求,同时确保网络的性能和可管理性。
网络设备制造商纷纷采用VXLAN和NVGRE,以满足客户需求,解决VLAN限制,并为大型云计算部署和虚拟化环境提供了更多选择。支持VXLAN和NVGRE的交换机和路由器等网络设备已成为构建敏捷虚拟机组网环境的不可或缺的一部分。
在不断发展的网络虚拟化领域,VXLAN和NVGRE代表了技术不断前进的方向。随着云计算和虚拟化的不断演进,这些技术将继续发挥关键作用,为未来的网络架构提供支持,并促使更多创新的出现。因此,网络管理员和企业应密切关注这些发展,以确保他们的网络架构能够跟上时代的步伐,满足不断增长的需求。
往期推荐